package com.fzh.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fzh.pojo.entity.ProductType;

public interface ProductTypeMapper {
	
	/**
	 * 查询出所有的商品类型信息
	 * @return
	 */
	public List<ProductType> selectAllProductType(@Param("setValue")Integer setValue,@Param("limit") Integer limit, @Param("name")String name, @Param("p_id")String p_id);
	
	/**
	 * 查询出商品类型的总条数
	 * @return
	 */
	public int selectProductTypeCounts(@Param("name") String name,@Param("p_id") String p_id);

	/**
	 * 查询出顶级分类的数据
	 * @return
	 */
	public List<ProductType> selectTwoEvlProductType();

	/**
	 * 添加一个商品的类型
	 * @param productType
	 * @return
	 */
	public Integer insertProductType(ProductType productType);

	/**
	 * 修改商品的类型信息
	 * @param productType
	 * @return
	 */
	public Integer updateProductTypeById(ProductType productType);

	/**
	 * 批量的删除商品的类型
	 * @param ids
	 * @return
	 */
	public Integer deleteAllProductTypeByIds(List<String> ids);
	
	/**
	 * 根据id删除单个的商品类型
	 * @param id
	 * @return
	 */
	public int deleteProductTypeById(int id);

	
	/**
	 * 查询出商品的类型用于商品页面的搜索
	 * @return
	 */
	public List<ProductType> selectProductTypeName();

	/**
	 * 查询数据库的商品类型名称与商品类型页面输入的名称来判断是否唯一
	 * @param typeName
	 * @return
	 */
	public List<ProductType> selectAllProductTypeNameWitchVerify(@Param("typeName")String typeName);

	/**
	 * {前台}查询所有商品类型用于展示
	 * @return
	 */
	public List<ProductType> selectAllProductTypeF();
	
	/**
	 * {前台}查询所有商品类型用于展示,根据p_id<>0
	 * @return
	 */
	public List<ProductType> selectAllProductTypeByPid();
	
	/**
	 * {前台}查询所有商品类型用于展示,根据p_id查询一级分类
	 * @return
	 */
	public List<ProductType> selectAllProductTypeByP_id(Integer p_id);
	
	/**
	 * 当进行商品类型删除之前先进行查看当前的商品类型是否有子类型链接，如有就会返回true不让直接的删除
	 * @param id
	 * @return
	 */
	public List<ProductType> selectProductTypeBelowIsSonProductTypeByP_id(Integer id);
	
}
